// 废弃，前台获取不到，而且很麻烦
/** enum.ts
 * 枚举工具类的定义
 * 可以全局使用this.$enum.getDescByValue()等等...
 */

// import type { AnyARecord } from "dns"

const EnumUtil:any = {}

EnumUtil.install = function (App:any, data:any) {
  const constantInfo = data || {}
  const Enum = { ...data }
  /**
   * 根据枚举值获取描述
   * @param {*} constantName  枚举对象的名字
   * @param {*} value         枚举值
   * @param {*} label          枚举值所对应的描述
   */
  Enum.getDescByValue = function (constantName:any, value:any) {
    // if (!constantInfo.hasOwnProperty(constantName))
    if(!Object.prototype.hasOwnProperty.call(constantInfo, constantName)) {
      return ''
    }
    const constantItem = constantInfo[constantName] // 通过传进来的名字拿到所对应的常量项
    for (const item in constantItem) {
      // 循环常量项
      if (constantItem[item].value === value) {
        return constantItem[item].label
      }
    }
  }

//   App.prototype.$enum = Enum // 挂在原型上，方便使用

    //  挂在原型上，方便使用--vue3推荐用法
    App.provide('globalConstEnum', Enum);
}

export default EnumUtil

